package com.ruoyi.ldzlsb.service;

import com.ruoyi.ldzlsb.domain.SbEquipment;
import com.ruoyi.common.core.domain.UR;

import java.util.List;
import java.util.Map;

/**
 * 设备管理 服务层
 */
public interface SbEquipmentService {
    
    /**
     * 查询设备列表
     * 
     * @param equipment 设备信息
     * @return 设备集合
     */
    List<SbEquipment> findEquipment(SbEquipment equipment);
    
    /**
     * 根据ID查询设备详情
     * 
     * @param id 设备ID
     * @return 设备信息
     */
    SbEquipment getById(Long id);
    
    /**
     * 新增设备
     * 
     * @param equipment 设备信息
     * @return 结果
     */
    boolean saveEquipment(SbEquipment equipment);
    
    /**
     * 修改设备
     * 
     * @param equipment 设备信息
     * @return 结果
     */
    boolean updateEquipment(SbEquipment equipment);
    
    /**
     * 删除设备
     * 
     * @param id 设备ID
     * @return 结果
     */
    boolean deleteEquipment(Long id);
    
    /**
     * 生成设备编码
     * 
     * @param type 设备类型
     * @return 结果
     */
    UR generateCode(String type);
    
    /**
     * 检查设备编码是否已存在
     * 
     * @param equipmentCode 设备编码
     * @return 结果 true表示存在，false表示不存在
     */
    boolean checkEquipmentCode(String equipmentCode);
    
    /**
     * 更新设备状态
     * 
     * @param id 设备ID
     * @param status 设备状态
     * @return 结果
     */
    boolean updateStatus(Long id, String status);
    
    /**
     * 获取设备状态统计
     * 
     * @return 设备状态统计
     */
    Map<String, Object> getStatusStats();
} 